/**
 * axios 拦截适配数据源
 */
import axios from 'axios';
import qs from 'qs'
import { updateAuthState } from './checkStore';
import { message } from 'antd';

/****** 创建axios实例 ******/
const service = axios.create({
  //baseURL: 'http://192.168.1.3:80',
  timeout: 100000, // 请求超时限制
});



/****** request拦截器==>对请求参数做处理 ******/
service.interceptors.request.use(config => {
  config.headers.Authorization = 'Bearer ' + 'eyJhbGciOiJIUzUxMiJ9.eyJ0b2tlbl9jcmVhdGVfdGltZSI6MTU5ODIzNjQ0ODk5OCwic3ViIjoidGVzdCIsInRva2VuX3VzZXJfbmFtZSI6InRlc3QiLCJleHAiOjE2MTYyMzY0NDgsInRva2VuX3VzZXJfcGFzc3dvcmQiOiIkMmEkMTAkWTRaRnhRYnUzbjd6TEZTQlBBVEJvLnFyYnVETWJodXMzbFl5Uk9JSW10TFBBMjQ3Mk1kejIifQ.5aFBvcT63WgKUngO-w9XWBtvDZhehV9NBLxjJGHl4qyZ22KIX2XaN8OZdg0iB_hHT0B4NXCXb2qR1nYV7V-XnA';     // 测试代码 写死token
  if (config.method === 'post') {
    if(config.trans === true&& config.params) {
      console.log('config', config)
      config.paramsSerializer = function(params) {
        return qs.stringify(params, {arrayFormat: 'repeat'})
      }
      // return qs.stringify(config.params, {arrayFormat: 'repeat'});
    }
    
    //config.data = JSON.stringify({ ...config.data });
    // config.params = qs.stringify({ ...config.params });
  } else {
    config.params = { ...config.params };
  }
  return config;
}, error => {
  // 请求错误处理
  message.error(error);
  Promise.reject(error);
});


/****** respond拦截器==>对响应做处理 ******/
service.interceptors.response.use(
  res => {  //成功请求到数据
    message.destroy();
    // 处理接口返回数据
    if (res.status === 200) {
      // if(res.data.metaData&&(res.data.metaData.code === '403')) {
      //   window.location.href = '/#/NotPermission';
      // }
      // if(res.data.metaData&&(res.data.metaData.code === '403')){
      //   window.location.href = '/#/NotPermission';
      // }
      // if(res.data.metaData&&(res.data.metaData.code === 'success')) {
      //   //更新token
      //   updateAuthState();
      //   return res;
      // }
      // else{
      //   console.log(res.data.metaData);
      //   if(res.data.metaData) {
      //     message.error(res.data.metaData.message);
      //   }
      //   if(res.data.metaData) {
      //     message.error(res.data.metaData.message);
      //   }

      // }
      return res;
    }
    else if (res.status === 504){
      message.error('数据获取错误！请刷新页面');
    }
    else if ( res.status === 401 ) {
      window.location.href = '/#/NotLogin';
    }
    else {
      return Promise.reject(res);
    }
  },
  error => {
    console.log(error.response);
    if(error){
      if(error.response){
        if(error.response.status === 401) {
          message.error(error.response.data.data);
        }
        if(error.response.status === 500) {
          message.error(error.response.data.message);
        }
      } else {
        message.error("请求失败");
      }
    } else {
      message.error("请求失败");
    }

    return Promise.reject(error)
  }
);


export default service;
